To more fully utilize a mobile device such as a consumer robot, users want to be able to remotely or locally drive (control the movement) of the mobile device, such as to drive the robot around the user's home. However, such control is challenging for various reasons.
One such reason is latency. For example, if latency larger than a small fraction of a second is present, the user may not be able to correct the device's path and speed, possibly resulting in a collision with an obstacle. Even if collisions do not occur, user latency causes a poorly controlled system, with the resulting path of the device not being smooth.
Another challenging aspect is safety, in that a user might not be able to react fast enough in a dynamic environment to avoid a collision. Even in a stationary environment, the user may be unable to react fast enough to avoid mishandling the device when attempting to control a fast moving device.
Still further, a mobile device should be easy to control. A user should not have to provide too many navigation commands to navigate the device through typical indoor/outdoor spaces. In tight spaces, or spaces with obstacles, however, a user currently needs to provide a large number of navigation commands, which is difficult to do, and thus the user likely has to slow the device down considerably to avoid collisions.